查看原文
其他

学会format,数据格式任你拿捏

爬虫俱乐部 Stata and Python数据分析 2023-10-24

本文作者:何疆,河南大学经济学院

本文编辑:王思雨

技术总编:李婷婷

Stata and Python 数据分析

爬虫俱乐部Stata基础课程Stata进阶课程Python课程可在小鹅通平台查看,欢迎大家多多支持订阅!如需了解详情,可以通过课程链接(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或课程二维码进行访问哦~
1导读

我们在Stata的应用中,总是会发现某一变量中的数据格式不符合我们的需求,需要改变数据的格式才能继续工作,这时候不要慌,学会下面的format命令,数据格式任你拿捏!

比如说我们在使用上市公司数据进行研究时,会遇到数据中的股票代码形式不是我们通常所见的六位数格式,而是例如2、13、368这种格式,需要将其修改成000002、000013、000368这种格式,此时最简单的方法就是使用format命令。

如果想将股票代码保存为六位数的数值型变量,可以输入以下代码

format stkcd %06.0f

得到如下结果:

如果想将股票代码保存为六位数的字符型变量,可以输入以下代码来实现

tostring stkcd,format(%06.0f) replace

format就是这样一个简单且实用的命令,下面本文将对其进行简单说明。


2命令介绍

format命令可以对Stata中的变量进行格式设定与更改,在实际操作中是一个简单又强大的命令。下面我们先来学习一下format的语法,输入:

help format

通过我们无所不知的老朋友help,我们可以学会format的两种语法:format varlist %fmt 和 format %fmt varlist,这两种命令的输出结果是一样的,其中%fmt可以分针对数值型、日期型、字符串型变量进行格式设定。废话不多说,我们直接进入实战,通过实例操作来学习应用最广泛的数值型变量格式转换。


3实例操作%#w.#df格式

我们先生成八个数,并用format设置成不同格式,输入代码:

clear allinput x10.00615150.013540.362615411.236526513.6612613241.56156811.2523515412.56448endgen x2=x1gen x3=x1gen x4=x1gen x5=-x1format %4.3f x2format %9.3f x3format %09.3f x4format %9.3f x5list x1 x2 x3 x4 x5

得到如下结果:

生成的数据默认格式是%9.0g,其中#w表示字节长度,#d表示小数点后保留的位数。我们可以总结出以下几点:

(1)对比x2和x3我们可以发现,#w分别为4和8,但是输出结果却一样,为什么呢?原来是因为在%#w.#df格式中,字节长度不满8时,系统会默认字节长度为8。

(2)通过观察第七行和第八行的结果,发现都是%#w.#de格式的,这一格式就是科学计数法格式,当数值长度大于字节长度时就会显示该格式。

(3)通过观察x4可知,#w是09时,没有被占据的字节会自动填充为0,这一格式在股票代码数据中的应用比较常见。

(4)通过观察x5可以发现,符号也会占据一个字节长度。

(5)还有一点要注意的是,#w一定要大于#d,即字节长度不能小于小数点后保留位数,否则就会报错。

%#w.#dg格式

我们要学会区分%#w.#dg格式和%#w.#df格式,继续输入以下代码:

format %7.0g x2format %8.2g x3format %8.5g x4format %8.0g x5list x1 x2 x3 x4 x5

得到结果:

关于%#w.#dg格式,它与%#w.#df很相似,#w仍然代表字节长度,而#d则表示保留几位有效数字,观察x2列可以发现,当#d为0的时候,则显示字节长度为#w的格式,如果是%#w.#df格式的话,那么就会只保留整数位。当#d不等于0时,则显示#d个有效数字。并且%#w.#dg格式会给符号预留一个字节,因为符号会占据一个字节长度,通过对比观察x1和x5的结果,我们就可以发现这一点。

%#w.#dfc格式和%#w.#dgc格式

这两种格式与上面所提到的两种格式只是略有不同,输入代码:

format %12.2gc x2format %12.2fc x3list x1 x2 x3

结果如下:

通过观察可以发现,%#w.#dfc,%#w.#dgc和%#w.#df,%#w.#dg的差别就在于前者多了相应数量的千分符。

此外,观察之前的输出结果,我们可以发现数据格式都是右对齐,想要改为左对齐也非常简单,只需要在#w前加上负号即可。我们输入以下代码:

format %-9.0g x1list x1

明显可以看出数值从右对齐变为了左对齐。


4结语

以上就是关于format命令的简单介绍,相信大家通过自己实际操作很快就能掌握这个强大的命令,赶快打开你的Stata练习一下吧!


END

重磅福利!为了更好地服务各位同学的研究,爬虫俱乐部将在小鹅通平台上持续提供金融研究所需要的各类指标,包括上市公司十大股东、股价崩盘、投资效率、融资约束、企业避税、分析师跟踪、净资产收益率、资产回报率、国际四大审计、托宾Q值、第一大股东持股比例、账面市值比、沪深A股上市公司研究常用控制变量等一系列深加工数据,基于各交易所信息披露的数据利用Stata在实现数据实时更新的同时还将不断上线更多的数据指标。我们以最前沿的数据处理技术、最好的服务质量、最大的诚意望能助力大家的研究工作!相关数据链接,请大家访问:(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或扫描二维码:

最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。


对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!







往期推文推荐【Python实战】游客最青睐的城市,你的家乡上榜了吗?

What’ new ? 速通Stata 18

【爬虫实战】Python爬取美食菜谱
揭秘网络中心人物,你会是其中之一吗?考研之后,文科生需以“do”躬“do”!焕新升级!轻松获取港股、权证的历史交易数据爬虫俱乐部的精彩答疑---cntraveltime【爬虫俱乐部新命令速递】在Stata中与ChatGPT对话

用`fs`命令批量获取文件夹和不同文件夹下的excel文件

自然语言处理之实例应用

JSON帮手,FeHelper

最新、最热门的命令这里都有!

Python实现微信自动回复告诉python,我想“狂飙”了——线程池与异步协程为爬虫提速高级函数——map()和reduce()

Stata绘制条形图的进阶用法

快来看看武汉的房价是不是又双叒叕涨了!Python 常见内置函数(二)

Stata绘制饼形图的进阶用法


     关于我们 

   微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

   武汉字符串数据科技有限公司一直为广大用户提供数据采集和分析的服务工作,如果您有这方面的需求,请发邮件到statatraining@163.com,或者直接联系我们的数据中台总工程司海涛先生,电话:18203668525,wechat: super4ht。海涛先生曾长期在香港大学从事研究工作,现为知名985大学的博士生,爬虫俱乐部网络爬虫技术和正则表达式的课程负责人。



此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。

投稿邮箱:statatraining@163.com投稿要求:1)必须原创,禁止抄袭;2)必须准确,详细,有例子,有截图;注意事项:1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。2)邮件请注明投稿,邮件名称为“投稿+推文名称”。3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存